package com.w3c.pragmatic.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.service.Contact;

/**
 * Swagger配置类
 *
 * @author wangdong
 */
@Configuration
@EnableOpenApi
public class SwaggerConfig {

  // 默认访问地址：http://localhost:端口号/doc.html
  @Bean
  public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(
            new ApiInfoBuilder()
                // 网站标题
                .title("XX服务-接口文档")
                // 描述 可以穿插md语法
                .description("这是XX服务接口文档")
                // 服务条款
                .termsOfServiceUrl("......")
                // 设置作者 服务器url 邮箱
                .contact(new Contact("王东", "作者URL", "pragmaticwithdong@163.com"))
                // 许可证
                .license("...")
                // 许可证url
                .licenseUrl("....")
                // 版本
                .version("1.0")
                .build())
        .groupName("test测试组")
        .select()
        // 要扫描的包
        .apis(RequestHandlerSelectors.basePackage("com.w3c.pragmatic"))
        // 要扫描的url
        .paths(PathSelectors.any())
        .build();
  }
}
